Remove GtkSet
authorBenjamin Otte <otte@redhat.com>
Sun, 14 Jun 2020 05:08:44 +0000 (07:08 +0200)
committerBenjamin Otte <otte@redhat.com>
Fri, 26 Jun 2020 05:13:32 +0000 (07:13 +0200)
It's been superceded by GtkBitset.

docs/reference/gtk/meson.build
gtk/gtkset.c [deleted file]
gtk/gtkset.h [deleted file]
gtk/meson.build

index 24ab257709cf4b40d21d919fa2b5b290c4391732..af1495954425c234c247ff5471233b5a0379e889 100644 (file)
@@ -176,7 +176,6 @@ private_headers = [
   'gtkroundedboxprivate.h',
   'gtkscalerprivate.h',
   'gtksearchentryprivate.h',
-  'gtkset.h',
   'gtksettingsprivate.h',
   'gtkshortcutcontrollerprivate.h',
   'gtkshortcutsshortcutprivate.h',
diff --git a/gtk/gtkset.c b/gtk/gtkset.c
deleted file mode 100644 (file)
index 18fab23..0000000
+++ /dev/null
@@ -1,383 +0,0 @@
-/*
- * Copyright © 2019 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors: Matthias Clasen <mclasen@redhat.com>
- */
-
-#include "gtkset.h"
-
-/* Store a set of unsigned integers as a sorted array of ranges.
- */
-
-typedef struct
-{
-  guint first;
-  guint n_items;
-} Range;
-
-struct _GtkSet
-{
-  GArray *ranges;
-};
-
-typedef struct
-{
-  GtkSet *set;
-  Range *current;
-  int idx;
-  guint pos;
-} GtkRealSetIter;
-
-GtkSet *
-gtk_set_new (void)
-{
-  GtkSet *set;
-
-  set = g_new (GtkSet, 1);
-  set->ranges = g_array_new (FALSE, FALSE, sizeof (Range));
-
-  return set;
-}
-
-GtkSet *
-gtk_set_copy (GtkSet *set)
-{
-  GtkSet *copy;
-
-  copy = g_new (GtkSet, 1);
-  copy->ranges = g_array_copy (set->ranges);
-
-  return copy;
-}
-
-void
-gtk_set_free (GtkSet *set)
-{
-  g_array_free (set->ranges, TRUE);
-  g_free (set);
-}
-
-gboolean
-gtk_set_contains (GtkSet   *set,
-                  guint     item)
-{
-  int i;
-
-  for (i = 0; i < set->ranges->len; i++)
-    {
-      Range *r = &g_array_index (set->ranges, Range, i);
-
-      if (item < r->first)
-        return FALSE;
-
-      if (item < r->first + r->n_items)
-        return TRUE;
-    }
-
-  return FALSE;
-}
-
-void
-gtk_set_remove_all (GtkSet *set)
-{
-  g_array_set_size (set->ranges, 0);
-}
-
-static int
-range_compare (Range *r, Range *s)
-{
-  int ret = 0;
-
-  if (r->first + r->n_items < s->first)
-    ret = -1;
-  else if (s->first + s->n_items < r->first)
-    ret = 1;
-
-  return ret;
-}
-
-void
-gtk_set_add_range (GtkSet   *set,
-                   guint     first_item,
-                   guint     n_items)
-{
-  int i;
-  Range s;
-  int first = -1;
-  int last = -1;
-
-  s.first = first_item;
-  s.n_items = n_items;
-
-  for (i = 0; i < set->ranges->len; i++)
-    {
-      Range *r = &g_array_index (set->ranges, Range, i);
-      int cmp = range_compare (&s, r);
-
-      if (cmp < 0)
-        break;
-
-      if (cmp == 0)
-        {
-          if (first < 0)
-            first = i;
-          last = i;
-        }
-    }
-
-  if (first > -1)
-    {
-      Range *r;
-      guint start;
-      guint end;
-
-      r = &g_array_index (set->ranges, Range, first);
-      start = MIN (s.first, r->first);
-
-      r = &g_array_index (set->ranges, Range, last);
-      end = MAX (s.first + s.n_items - 1, r->first + r->n_items - 1);
-
-      s.first = start;
-      s.n_items = end - start + 1;
-
-      g_array_remove_range (set->ranges, first, last - first + 1);
-      g_array_insert_val (set->ranges, first, s);
-    }
-  else
-    g_array_insert_val (set->ranges, i, s);
-}
-
-void
-gtk_set_remove_range (GtkSet *set,
-                      guint   first_item,
-                      guint   n_items)
-{
-  Range s;
-  int i;
-  int first = -1;
-  int last = -1;
-
-  s.first = first_item;
-  s.n_items = n_items;
-
-  for (i = 0; i < set->ranges->len; i++)
-    {
-      Range *r = &g_array_index (set->ranges, Range, i);
-      int cmp = range_compare (&s, r);
-
-      if (cmp < 0)
-        break;
-
-      if (cmp == 0)
-        {
-          if (first < 0)
-            first = i;
-          last = i;
-        }
-    }
-
-  if (first > -1)
-    {
-      Range *r;
-      Range a[2];
-      int k = 0;
-
-      r = &g_array_index (set->ranges, Range, first);
-      if (r->first < s.first)
-        {
-          a[k].first = r->first;
-          a[k].n_items = s.first - r->first;
-          k++;
-        }
-      r = &g_array_index (set->ranges, Range, last);
-      if (r->first + r->n_items > s.first + s.n_items)
-        {
-          a[k].first = s.first + s.n_items;
-          a[k].n_items = r->first + r->n_items - a[k].first;
-          k++;
-        }
-      g_array_remove_range (set->ranges, first, last - first + 1);
-      if (k > 0)
-        g_array_insert_vals (set->ranges, first, a, k);
-   }
-}
-
-void
-gtk_set_find_range (GtkSet   *set,
-                    guint     position,
-                    guint     upper_bound,
-                    guint    *start,
-                    guint    *n_items,
-                    gboolean *contained)
-{
-  int i;
-  int last = 0;
-
-  if (position >= upper_bound)
-    {
-      *start = 0;
-      *n_items = 0;
-      *contained = FALSE;
-      return;
-    }
-
-  for (i = 0; i < set->ranges->len; i++)
-    {
-      Range *r = &g_array_index (set->ranges, Range, i);
-
-      if (position < r->first)
-        {
-           *start = last;
-           *n_items = r->first - last;
-           *contained = FALSE;
-
-           return;
-        }
-      else if (r->first <= position && position < r->first + r->n_items)
-        {
-          *start = r->first;
-          *n_items = r->n_items;
-          *contained = TRUE;
-
-          return;
-        }
-      else
-        last = r->first + r->n_items;
-    }
-
-  *start = last;
-  *n_items = upper_bound - last;
-  *contained = FALSE;
-}
-
-void
-gtk_set_add_item (GtkSet *set,
-                  guint   item)
-{
-  gtk_set_add_range (set, item, 1);
-}
-
-void
-gtk_set_remove_item (GtkSet   *set,
-                     guint     item)
-{
-  gtk_set_remove_range (set, item, 1);
-}
-
-/* This is peculiar operation: Replace every number n >= first by n + shift
- * This is only supported for negative shifts if the shifting does not cause
- * any ranges to overlap.
- */
-void
-gtk_set_shift (GtkSet *set,
-               guint first,
-               int shift)
-{
-  int i;
-
-  for (i = 0; i < set->ranges->len; i++)
-    {
-      Range *r = &g_array_index (set->ranges, Range, i);
-      if (r->first >= first)
-        r->first += shift;
-    }
-}
-
-void
-gtk_set_iter_init (GtkSetIter *iter,
-                   GtkSet     *set)
-{
-  GtkRealSetIter *ri = (GtkRealSetIter *)iter;
-
-  ri->set = set;
-  ri->idx = -1;
-  ri->current = 0;
-}
-
-gboolean
-gtk_set_iter_next (GtkSetIter *iter,
-                   guint      *item)
-{
-  GtkRealSetIter *ri = (GtkRealSetIter *)iter;
-
-  if (ri->idx == -1)
-    {
-next_range:
-      ri->idx++;
-
-      if (ri->idx == ri->set->ranges->len)
-        return FALSE;
-
-      ri->current = &g_array_index (ri->set->ranges, Range, ri->idx);
-      ri->pos = ri->current->first;
-    }
-  else
-    {
-      ri->pos++;
-      if (ri->pos == ri->current->first + ri->current->n_items)
-        goto next_range;
-    }
-
-  *item = ri->pos;
-  return TRUE;
-}
-
-gboolean
-gtk_set_is_empty (GtkSet *set)
-{
-  return set->ranges->len == 0;
-}
-
-guint
-gtk_set_get_min (GtkSet *set)
-{
-  Range *r;
-
-  if (gtk_set_is_empty (set))
-    return 0;
-
-  r = &g_array_index (set->ranges, Range, 0);
-
-  return r->first;
-}
-
-guint
-gtk_set_get_max (GtkSet *set)
-{
-  Range *r;
-
-  if (gtk_set_is_empty (set))
-    return 0;
-
-  r = &g_array_index (set->ranges, Range, set->ranges->len - 1);
-
-  return r->first + r->n_items - 1;
-}
-
-#if 0
-void
-gtk_set_dump (GtkSet *set)
-{
-  int i;
-
-  for (i = 0; i < set->ranges->len; i++)
-    {
-      Range *r = &g_array_index (set->ranges, Range, i);
-      g_print (" %u:%u", r->first, r->n_items);
-    }
-  g_print ("\n");
-}
-#endif
diff --git a/gtk/gtkset.h b/gtk/gtkset.h
deleted file mode 100644 (file)
index 1ab6c6d..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright © 2019 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- * Authors: Matthias Clasen <mclasen@redhat.com>
- */
-
-#ifndef __GTK_SET_H__
-#define __GTK_SET_H__
-
-#include <glib.h>
-
-typedef struct _GtkSet GtkSet;
-typedef struct _GtkSetIter GtkSetIter;
-
-struct _GtkSetIter
-{
-  gpointer dummy1;
-  gpointer dummy2;
-  int      dummy3;
-  int      dummy4;
-};
-
-GtkSet   *gtk_set_new          (void);
-void      gtk_set_free         (GtkSet   *set);
-GtkSet   *gtk_set_copy         (GtkSet   *set);
-
-gboolean  gtk_set_contains     (GtkSet   *set,
-                                guint     item);
-
-void      gtk_set_remove_all   (GtkSet   *set);
-void      gtk_set_add_item     (GtkSet   *set,
-                                guint     item);
-void      gtk_set_remove_item  (GtkSet   *set,
-                                guint     item);
-void      gtk_set_add_range    (GtkSet   *set,
-                                guint     first,
-                                guint     n);
-void      gtk_set_remove_range (GtkSet   *set,
-                                guint     first,
-                                guint     n);
-void      gtk_set_find_range   (GtkSet   *set,
-                                guint     position,
-                                guint     upper_bound,
-                                guint    *start,
-                                guint    *n_items,
-                                gboolean *contained);
-
-void      gtk_set_shift        (GtkSet   *set,
-                                guint     first,
-                                int       shift);
-
-void      gtk_set_iter_init    (GtkSetIter *iter,
-                                GtkSet     *set);
-gboolean  gtk_set_iter_next    (GtkSetIter *iter,
-                                guint      *item);
-
-gboolean  gtk_set_is_empty     (GtkSet *set);
-guint     gtk_set_get_min      (GtkSet *set);
-guint     gtk_set_get_max      (GtkSet *set);
-
-#endif  /* __GTK_SET_H__ */
index 1ece401c6f938d229466b313ccfb73dd14b2b597..4eb26952f6cf931314fa87576053e450ca079258 100644 (file)
@@ -134,7 +134,6 @@ gtk_private_sources = files([
   'gtkscaler.c',
   'gtksearchengine.c',
   'gtksearchenginemodel.c',
-  'gtkset.c',
   'gtksizerequestcache.c',
   'gtkstyleanimation.c',
   'gtkstylecascade.c',